package com.i8office.android.zhihuixinwu.module.contract;

import com.cyan.tools.base.BasePresenter;
import com.cyan.tools.base.BaseView;
import com.cyan.tools.callback.RequestCallback;
import com.i8office.android.zhihuixinwu.bean.Code;
import com.i8office.android.zhihuixinwu.bean.WorkFlowUnRead;

import java.util.ArrayList;
import java.util.Map;

import bean.WorkFlow;
import io.reactivex.disposables.Disposable;

/**
 * Created by pc on 2018/7/7.
 */

public interface OfficeContract {
    interface Model {
        Disposable getDeals(RequestCallback<ArrayList<WorkFlow>> callback, Map<String,String> param);
        Disposable getPending(RequestCallback<ArrayList<WorkFlow>> callback, Map<String,String> param);
        Disposable getPendingDep(RequestCallback<ArrayList<WorkFlow>> callback, Map<String,String> param);
        Disposable getPendingDepDeal(RequestCallback<ArrayList<WorkFlow>> callback, Map<String,String> param);
        Disposable getFavoriteList(RequestCallback<ArrayList<WorkFlow>> callback, Map<String,String> param);
        Disposable getFavoriteDepList(RequestCallback<ArrayList<WorkFlow>> callback, Map<String,String> param);
        Disposable getNotify(RequestCallback<WorkFlowUnRead> callback, Map<String,String> param);
        Disposable read(RequestCallback<Code> callback, Map<String, String> params);
    }

    interface View extends BaseView{
        void showResult(ArrayList<WorkFlow> data);
        void showUnReadNum(int num);
        void showEmpty();
        void showError();
    }

    interface Presenter extends BasePresenter{
        void getDeals(Map<String,String> param);
        void getPending(Map<String,String> param);
        void getPendingDep(Map<String,String> param);
        void getPendingDepDeal(Map<String,String> param);
        void getNotify(Map<String,String> param);
        void read(Map<String, String> params);
        void getFavoriteList(Map<String, String> params);
        void getFavoriteDepList(Map<String, String> params);
    }
}
